#!/bin/bash

# TOPAS批量运行脚本
# 基于carbon1.txt文件，将碳离子束能量从 1 MeV 到 5400 MeV 逐一运行

# 检查原始配置文件是否存在
if [ ! -f "carbon1.txt" ]; then
    echo "错误: carbon1.txt 文件不存在！"
    exit 1
fi

# 检查TOPAS可执行文件是否存在
if [ ! -f "../bin/topas" ]; then
    echo "错误: ../bin/topas 可执行文件不存在！"
    exit 1
fi

# 创建结果目录
mkdir -p results1

echo "开始批量运行TOPAS模拟..."
echo "能量范围: 1 MeV 到 5400 MeV"
echo "=========================================="

# 循环运行不同能量的模拟
for energy in $(seq 1 5400); do
    echo "正在运行能量 ${energy} MeV 的模拟..."
    
    # 创建临时配置文件
    temp_file="carbon1_${energy}MeV.txt"
    
    # 基于原始配置创建新文件，修改能量和输出文件名
    sed "s/d:So\/Demo\/BeamEnergy = 1800 MeV/d:So\/Demo\/BeamEnergy = ${energy} MeV/g" carbon1.txt | \
    sed "s/s:Sc\/Dose1\/OutputFile = \"ionization\"/s:Sc\/Dose1\/OutputFile = \"results1\/ionization_${energy}\"/g" > "$temp_file"
    
    # 运行TOPAS
    ../bin/topas "$temp_file"
    
    # 检查是否成功运行
    if [ $? -eq 0 ]; then
        echo "✓ 能量 ${energy} MeV 模拟完成"
        
    else
        echo "✗ 能量 ${energy} MeV 模拟失败"
    fi
    
    # 清理临时文件
    rm -f "$temp_file"
    
    # 显示进度
    if [ $((energy % 100)) -eq 0 ]; then
        echo "进度: ${energy}/5400 ($(echo "scale=1; $energy*100/5400" | bc)%)"
    fi
done

echo "=========================================="
echo "所有模拟完成！"
echo "结果文件保存在 results1/ 目录中"
echo "总共运行了 5400 个不同能量的模拟"
